/**
 * 
 */
package org.hotpotmaterial.codegenn2.service;

import java.util.List;

import org.hotpotmaterial.codegenn2.dto.entity.PageDTO;
import org.hotpotmaterial.codegenn2.dto.request.PageRequestDTO;
import org.hotpotmaterial.codegenn2.entity.HmteamAccountProject;
import org.hotpotmaterial.codegenn2.entity.Project;

/**
 * @author cakydeveloper
 *
 */
public interface IProjectService {
	
	/**
	 * 登录用户所有项目
	 * @return
	 */
	public PageDTO<Project> findProjectsByUser(PageRequestDTO searchDTO);
	
	/**
	 * 所有项目
	 * @param searchDTO
	 * @return
	 */
	public PageDTO<Project> findProjects(PageRequestDTO searchDTO);
	
	/**
	 * 创建项目
	 * @param record
	 * @return
	 */
	public int insertProject(Project record);
	
	/**
	 * 获取详情
	 * @param id
	 * @return
	 */
	public Project findById(Long id);
	
	/**
	 * 更新项目
	 * @param record
	 * @return
	 */
	public int updateProject(Long id, Project record);
	
	/**
	 * 停用项目
	 * @param id
	 * @return
	 */
	public int delProject(Long id);
	
	/**
	 * 获取项目关联账号列表
	 * @param id
	 * @return
	 */
	public List<HmteamAccountProject> findProjectAccounts(Long id, String userName);
	
	/**
	 * 分配项目权限
	 * @param id
	 * @param accountId
	 * @return
	 */
	public int assignProjectPermission(Long id, Long accountId);
	
	/**
	 * 移除项目权限
	 * @param id
	 * @param accountId
	 * @return
	 */
	public int delProjectPermission(Long id, Long projectAccountId);

}
